home *** CD-ROM | disk | FTP | other *** search
- 6000 print"[147]"
- 6010 poke53280,14:poke646,14:poke53281,6
- 6020 a=a+1
- 6025 ifa=1thenload"parser code",8,1
- 7000 rem basic parse call
- 7010 pa=50018:rem set pa="wdptra"
- 7020 mo=50065:rem set mo="more"
- 7030 sm=50066:rem set sm="samore"
- 7040 bf=50076:rem set bf="inbuff"
- 7050 ls=50075:rem set ls="lsbuff"
- 7060 ou=50040:rem set ou="verb"
- 7070 def fn p(x)=peek (ou+x)
- 7080 a$="":input a$
- 7090 if len (a$)=0 then goto 7130
- 7100 for i=1 to len (a$)
- 7110 : poke bf+i-1,asc (mid$(a$,i,1))
- 7120 next i
- 7130 poke ls,len (a$)
- 7140 poke pa,0:poke mo,0:poke sm,0
- 7150 sys 49152
- 7160 if fnp(2)>=5and fnp(22)=0and fnp(17)<>0then poke ou+22,fnp(2):poke ou+2,0
- 7170 sys 49161
- 7180 rem print output
- 7190 print:print "action :";fnp(31);"verb";fnp(0);fnp(1);"vers";fnp(2);fnp(3)
- 7200 for i=0 to 2
- 7210 print "object";chr$(49+i);" :";fnp(32+i);"n";fnp(16+i);fnp(19+i);
- 7220 print "a";fnp(10+i);fnp(13+i);"o";fnp(4+i);fnp(7+i)
- 7230 next i
- 7240 print "preposit:";fnp(22);fnp(23)
- 7250 print "say verb:";fnp(27);fnp(28)
- 7260 print "say prep:";fnp(29);fnp(30)
- 7270 print "say more:";fnp(26)
- 7280 print "more :";fnp(25)
- 7290 print "error :";fnp(24)
- 7300 if fnp(24)=0 then goto 7340
- 7310 print "i got stuck at ";:sys 49155
- 7320 print
- 7330 rem are all objects recognized
- 7340 for i=0 to 2
- 7350 if fnp(32+i)<>255 then goto 7410
- 7360 print "i don't know what a ";
- 7370 poke pa,3:poke pa+1,fnp(13+i)
- 7380 sys 49158:print " ";
- 7390 poke pa,2:poke pa+1,fnp(19+i)
- 7400 sys 49158:print " is."
- 7410 next i
- 7420 rem is the action recognized
- 7430 if fnp (31)<>255 then goto 7500
- 7440 print "[201] don't know how to ";
- 7450 poke pa,0:poke pa+1,fnp(1)
- 7460 sys 49158:print " ";
- 7470 poke pa,1:poke pa+1,fnp(3)
- 7480 sys 49158:print "."
- 7490 :
- 7500 rem all output done
- 7510 print
- 7520 if peek (mo)=0 then goto 7080
- 7530 print "press space for next list"
- 7540 get a$:if a$<>" "then 7540
- 7550 goto 7150
-